[실기] 정보처리기사 핵심요약 노트

NOTE

정보처리기사 실기 전 단원 핵심 요약(단원별 주요 개념 압축 정리).

📌 개념

1단원: 소프트웨어 생명주기 및 요구사항 분석

소프트웨어 생명주기 (SDLC) 모델

  • 폭포수 (Waterfall): 고전적, 단계별 순차 진행.
  • 프로토타입 (Prototyping): 시제품을 만들어 사용자 피드백 반영.
  • 나선형 (Spiral): 위험 분석 중심, 반복적 수행.
  • 애자일 (Agile): 사람 중심, 변화에 유연, 빠른 개발 (XP, SCRUM).

객체지향 기법

  • 캡슐화 (Encapsulation): 데이터와 연산을 하나로 묶음, 정보 은닉(Information Hiding) 유도.
  • 다형성 (Polymorphism): 오버로딩(중복정의), 오버라이딩(재정의).
  • 상속성 (Inheritance): 상위 클래스 속성 물려받음.

객체지향 분석 방법론 (럼바우)

  1. 객체 (Object) 모델링: 정보 모델, ER 다이어그램 (객체 다이어그램).
  2. 동적 (Dynamic) 모델링: 시간/상태 변화, 상태 다이어그램.
  3. 기능 (Functional) 모델링: 자료 흐름, DFD (자료 흐름도).

비용 산정 모델

  • 하향식: 델파이 기법 (전문가 합의).
  • 상향식: LOC (원시 코드 라인 수), Man Month (월별 인력 투입).
    • 계산 시 제시된 모든 숫자(기간, 인원 등) 사용.
  • COCOMO (Bohem): 규모에 따른 분류.
    • Organic: 5만 라인 이하 (조직 내부).
    • Semi-detached: 30만 라인 이하 (반 분리형).
    • Embedded: 30만 라인 이상 (초대형, 미사일 등).
  • FP (Function Point): 기능 점수 중심.

일정 관리

  • CPM (주공정법): 임계 경로(가장 오래 걸리는 경로) 계산.
  • PERT: 3점 추정 (비관치, 중간치, 낙관치) 이용.
  • CCPM: 자원 제약 고려, 연쇄 관리.

디자인 패턴 (GoF)

  • 생성 (Creational): Factory Method, Abstract Factory, Builder, Prototype, Singleton.
  • 구조 (Structural): Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
  • 행위 (Behavioral): Observer(상태 변화 시 자동 알림), Template Method, Command, Iterator, Mediator, Memento, State, Strategy, Visitor, Chain of Responsibility, Interpreter.

요구사항 분석

  • 유형: 기능(무엇을 하는가), 비기능(성능, 보안, 품질 등).
  • 프로세스: 도분명확 (도출 → 분석 → 명세 → 확인/검증).
  • 도출 기법: 브레인스토밍(자유 발언), 롤플레잉, 워크숍, 델파이.
  • 검증 기법:
    • 동료 검토 (Peer Review): 2~3명이 진행.
    • 워크스루 (Walkthrough): 회의 전 자료 배포, 비형식적.
    • 인스펙션 (Inspection): 저작자 외 전문가 팀, 형식적.
  • 명세 기법: 정형(수학적, 모델링), 비정형(자연어).

2단원: 화면 설계 (UI & UML)

UI (User Interface)

  • 유형: CLI(텍스트), GUI(그래픽), NUI(신체/직관), OUI(유기적/모든 사물).
  • 설계 원칙: 직유학유
    • 관성 (누구나 쉽게 이해)
    • 효성 (목표 달성)
    • 습성 (쉽게 배움)
    • 연성 (요구사항 수용)
  • 설계 기법: 3C 분석, SWOT, 시나리오 플래닝, 사용성 테스트, 스토리보드(UI 설계 산출물).

UML (Unified Modeling Language)

  • 구조적 (Structural) 다이어그램: 정적 구조.
    • 클래스: 속성, 메서드, 접근제어자(+, -, #).
    • 객체: 특정 시점의 인스턴스 관계.
    • 컴포넌트: 물리적 코드 컴포넌트 구조.
    • 배치 (Deployment): HW/SW 물리적 위치.
    • 패키지: 요소 그룹화.
    • 복합체 구조: 내부 구조 표현.
  • 행위적 (Behavioral) 다이어그램: 동적 흐름.
    • 유스케이스: 사용자 관점 기능.
    • 시퀀스: 시간 순서에 따른 메시지 흐름.
    • 커뮤니케이션: 객체 간 메시지 연관 관계.
    • 상태: 객체의 상태 변화.
    • 활동: 로직/기능의 처리 흐름.
    • 타이밍: 시간 제약.

UML class diagram relationships 이미지

Getty Images

탐색

  • 클래스 관계 (암기 필수):
    • 연관 (Association): 실선. (소유 X, 참조) ex) 축구선수-팀.
    • 의존 (Dependency): 점선 화살표. (잠깐 사용) ex) 교수-수업.
    • 일반화 (Generalization): 실선+비어있는 세모. (상속, is-a) ex) 차-버스.
    • 실체화 (Realization): 점선+비어있는 세모. (인터페이스 구현)
    • 집합 (Aggregation): 빈 마름모. (독립적 부분) ex) 컴퓨터-모니터.
    • 포함 (Composition): 채워진 마름모. (생명주기 함께함, 강함) ex) 차-엔진.

UML 관계 팁:

  • 점선: 포함 (<<include>> - 필수), 실선: 확장 (<<extend>> - 선택)

3단원: 데이터 모델링 및 구축

데이터 모델링 절차

  • 개념 (E-R) → 논리 (정규화, 스키마) → 물리 (반정규화, 테이블).

논리 데이터 모델

  • 관계형 (Relational): 테이블 구조.
    • 관계 대수 (절차적): Select, Project, Join, Division.
    • 관계 해석 (비절차적): 원하는 데이터만 명시.
  • 계층형: 트리 구조.
  • 네트워크형: 그래프 구조.

정규화 (Normalization)

  • 목적: 중복 제거, 이상 현상(삽입, 삭제, 갱신) 방지.
  • 단계 (암기): 도부이결다조
    1. 메인 원자성 (1NF)
    2. 분 함수 종속 제거 (2NF)
    3. 행 함수 종속 제거 (3NF)
    4. 정자이면서 후보키가 아닌 것 제거 (BCNF)
    5. 치 종속 제거 (4NF)
    6. 인 종속 제거 (5NF)

무결성 (Integrity)

  • 개체 무결성: 기본키는 Null 불가, 중복 불가.
  • 참조 무결성: 외래키는 참조하는 테이블의 기본키와 같거나 Null이어야 함.
  • 도메인(속성) 무결성: 속성 값의 범위 준수.
  • 키 종류: 슈퍼키(유일성O, 최소성X), 후보키(최소성O), 기본키(PK), 대체키, 외래키(FK).

데이터베이스 관리

  • 파티셔닝: 레인지(범위), 해시(함수), 리스트(특정 값), 컴포지트(결합), 라운드로빈.
  • NoSQL: 스키마 X, Join 불가, 수평 확장 용이.
  • 데이터 마이닝: 대량 데이터에서 패턴/규칙 발견.

4단원: 통합 구현 (연계)

연계 방식

  • 직접 연계: DB Link, JDBC, API, Connection Pool(미리 연결 생성), Hyperlink.
  • 간접 연계: EAI, ESB, Socket.

EAI (Enterprise Application Integration)

  • 유형:
    • Point-to-Point: 1:1 연결.
    • Hub & Spoke: 중앙 허브 경유.
    • Message Bus: 미들웨어(버스) 사용.
    • Hybrid: Hub & Spoke + Message Bus.

ESB (Enterprise Service Bus)

  • 느슨한 결합, 서비스 지향, 버스 형태.
  • 핵심 기술: SOAP (XML 프로토콜), WSDL (서비스 명세), UDDI (저장소).

IPC (Inter-Process Communication)

  • 프로세스 간 통신. (메시지 큐, 공유 메모리, 소켓, 세마포어).

5단원: 인터페이스 구현 및 보안

인터페이스 기술

  • JSON: Key-Value 쌍, 경량.
  • XML: 마크업 언어, HTML 단점 보완.
  • AJAX: JS 이용 비동기 통신 (XMLHttpRequest).
  • REST: 자원(URI) + 행위(HTTP Method).
    • POST (Create), GET (Read), PUT (Update), DELETE (Delete).

보안 기술

  • DB 암호화:
    • API: 애플리케이션 레벨.
    • Plug-in: DB 서버 내 모듈 설치.
    • TDE: DBMS 커널 내장 (투명 암호화).
    • Hybrid: API + Plug-in.
  • 전송 암호화: IPSec (네트워크 계층), SSL/TLS (전송 계층), S-HTTP.

테스트 도구

  • 단위 테스트: xUnit(다양한 언어).
  • 서비스 테스트: STAF(재사용), FitNesse(웹 기반), NTAF(STAF+FitNesse).
  • 웹 자동화: Selenium(스크립트), Watir(루비).
  • 모니터링(APM): Scouter, Jennifer.

8단원: 서버 프로그램 및 형상 관리

형상 관리 (SCM)

  • 도구:
    • CVS: 파일 단위, 동시 변경 가능.
    • SVN: CVS 개선, 커밋 실패 시 롤백.
    • Git: 분산 버전 관리. (언급 없어도 중요)
  • 재공학 (Re-engineering): 기존 시스템 개선/재활용.
  • 재개발: 새로 개발.

모듈 품질 (중요)

  • 응집도 (높을수록 좋음): 우논시절통순기 (우연 < 논리 < 시간 < 절차 < 통신 < 순차 < 기능).
  • 결합도 (낮을수록 좋음): 내공외제스자 (내용 > 공통 > 외부 > 제어 > 스탬프 > 자료).
    • 내용(Content): 내부 로직 직접 참조 (최악).
    • 공통(Common): 전역 변수 사용.
    • 스탬프(Stamp): 배열/객체 전달.
    • 자료(Data): 단순 파라미터 전달 (최고).

배치 스케줄러

  • Spring Batch, Quartz.
  • Cron 표현식: 초 / 분 / 시 / 일 / 월 / 요일 / 연도.

9단원: 소프트웨어 보안

보안 3대 요소 (CIA)

  • 기밀성 (Confidentiality): 인가된 자만 접근.
  • 무결성 (Integrity): 위변조 방지.
  • 가용성 (Availability): 언제든 사용 가능.

공격 기법

  • 네트워크/패킷:
    • Ping of Death: 거대 핑 전송.
    • Teardrop: Offset 조작 (재조합 오류).
    • Land Attack: 출발지 IP = 목적지 IP.
    • Smurf: 브로드캐스트로 응답 폭주 유도.
    • Bonk/Boink: 시퀀스 번호 조작.
  • 애플리케이션/DoS:
    • Slowloris: 개행 문자 미전송 (연결 유지).
    • RUDY: Content-Length 크게 설정.
    • Hulk DoS: URL 지속 변경.
    • HTTP GET Flooding: 과도한 GET 요청.
  • 기타: 스피어 피싱(타깃 메일), 타이포스쿼팅(URL 오타 악용), 트러스트존(ARM 보안 영역).

접근 통제

  • DAC: 신분(ID) 기반.
  • MAC: 권한/등급 기반.
  • 모델:
    • Bell-LaPadula (벨-라파듈라): 기밀성 (No Read Up, No Write Down).
    • Biba (비바): 무결성 (No Read Down, No Write Up).

10단원: 애플리케이션 테스트

테스트 원리

  • 결함 집중, 살충제 패러독스(반복하면 내성 생김), 오류-부재의 궤변(무결점≠고품질).

테스트 분류

  • 정적: 실행 X (리뷰, 인스펙션, 코드 분석).
  • 동적: 실행 O.
    • 화이트박스 (내부 로직): 구문/결정/조건 커버리지, 기본 경로, 제어 흐름, 데이터 흐름.
    • 블랙박스 (기능 명세):
      • 동치 분할 (Equivalence Partitioning): 영역별 대표값.
      • 경계값 분석 (Boundary Value): 경계에서 오류 다발.
      • 원인-효과 그래프, 오류 예측, 페어와이즈, 상태 전이.

테스트 레벨

  • 단위 → 통합 → 시스템 → 인수 (알파/베타).
  • 통합 테스트:
    • 상향식: 드라이버 (Driver) 필요.
    • 하향식: 스텁 (Stub) 필요.

테스트 오라클

  • 참(모든 입력 확인), 샘플링(일부만), 휴리스틱(샘플링+직관), 일관성(변경 전후 비교).

11단원: 운영체제 및 네트워크

프로세스 관리

  • 상태: 생성 → 준비(Ready) → 실행(Running) → 대기(Blocked) → 종료.
  • 스케줄링:
    • 선점 (Preemptive): RR(Round Robin), SRT, 다단계 큐.
    • 비선점 (Non-preemptive): FCFS, SJF(짧은 것 우선), HRN.
      • HRN 우선순위: (대기 + 서비스) / 서비스. (값이 클수록 우선)

메모리 관리

  • 배치 기법: 최초(First), 최적(Best), 최악(Worst) 적합.
  • 교체 기법: FIFO, LRU(시간), LFU(빈도), OPT(미래 예측-불가능), NUR(참조 비트), SCR(2차 기회).

디스크 스케줄링

  • FCFS, SSTF(가장 가까운 트랙), SCAN(엘리베이터), C-SCAN(한쪽 방향만), LOOK/C-LOOK.

네트워크 및 인프라

  • 프로토콜 3요소: 구문, 의미, 타이밍.
  • 라우팅:
    • IGP (내부): RIP(Distance Vector), OSPF(Link State, 다익스트라).
    • EGP (외부): BGP.
  • 스토리지: DAS(직접), NAS(네트워크), SAN(광채널).
  • RAID:
    • RAID 0: 스트라이핑 (빠름, 복구불가).
    • RAID 1: 미러링 (복제).
    • RAID 5: 패리티 (분산 저장).
    • RAID 6: 이중 패리티.

12단원: 제품 소프트웨어 패키징 (릴리즈 & DRM)

DRM (Digital Rights Management)

  • 구성요소: 콘텐츠 제공자, 소비자, 분배자, 클리어링 하우스(권한/라이선스 발급 및 정산).
  • 기술: 암호화(PKI), 키 관리, 식별(DOI, URI), 저작권 표현(XrML), 워터마킹, 크랙 방지(난독화).

백업 (Backup)

  1. 차등 백업 (Differential): 전체 백업 이후 변경된 모든 것. (점점 커짐)
  1. 증분 백업 (Incremental): 변경된 것만 백업. (복구 시 시간 소요)